在上一篇的文章中,我们简单了介绍chef的环境搭建,那么现在你肯定就跃跃欲试如何创建一个cookbook,真正体会自动化的配置管理的便捷之处。
废话少说,我们选取简单的hello-world为例子,
需求:
1.在workstation可以让多个节点自动化创建hello-world.txt文件
2.文件的owner是test, group是test
假设:
test用户和组是在节点上已经存在
实施:
(下面的步骤如果没有特殊说明,都是在workstation上运行的)
- 创建cookbook
1 | knife cookbook create hello_world |
- 添加内容到recipe
recipe就是主要的控制内容,让节点完成具体的操作。
cat recipes/default.rb 如下:
1 |
|
上面的指令是:在用户对应的目录(Linux/Unix:~ Windows: %HOMEPATH%)下创建一个文件hello-world.txt:
内容是放在hello-world.txt.erb模板里面。
- 添加对应的模板
1 | cat templates/default/hello-world.txt.erb 如下: |
- 上传cookbook到chef server
1 | knife cookbook upload 'hello_world' |
- 将相应的cookbook添加到对应节点run_list
1 | knife node run_list add 'hello_world' |
其中的node name,可以通过knife node list查看
- 检查相应的run list是否被node包含
1 | $ knife node show |
- 节点应用cookbook
1 | knife ssh name: -x -P "sudo chef-client" |
- 验证node是否正确配置, 登录到node节点,检查
1 | cat ~/hello-world.txt 如下: |
可见按照上面的步骤我们就顺利的完成了一个很简单的cookbook开发,熟悉了流程后,后面可以继续研究复杂cookbook的编写。
其他参考: